package com.xnyzc.lhy.didi.entity.price;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 计费规则表
 *
 * @author wangshuo
 * @since 2019-09-26
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "OaSysBillRules对象", description = "计费规则表")
public class OaSysBillRules implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "规则ID")
    @TableId(value = "rules_id", type = IdType.INPUT)
    private Long rulesId;

    public static final String CHANNEL_ID = "channel_id";
    public static final String ROBABLE = "robable";

    @ApiModelProperty(value = "城市ID")
    private String cityId;

    @ApiModelProperty(value = "车辆类型（经济、舒适、商务、豪华等）")
    private Integer vehicleType;

    @ApiModelProperty(value = "叫车方式-立即叫车/预约叫车/接机/送机/接站/送站")
    private String callType;

    @ApiModelProperty(value = "公司ID")
    private Long companyId;

    @ApiModelProperty(value = "用车时间类型（0：常规、1：休息日）")
    private Integer useTimeType;

    @ApiModelProperty(value = "起步价")
    private BigDecimal startFee;

    @ApiModelProperty(value = "预约起步价")
    private BigDecimal reservationStartFee;

    @ApiModelProperty(value = "起步价里程")
    private Integer startMileage;

    @ApiModelProperty(value = "起步价时间")
    private Integer startTime;

    @ApiModelProperty(value = "里程费")
    private BigDecimal mileageFee;

    @ApiModelProperty(value = "时长费")
    private BigDecimal timeFee;

    @ApiModelProperty(value = "远途费")
    private BigDecimal distanceFee;

    @ApiModelProperty(value = "服务费")
    private BigDecimal serviceFee;

    @ApiModelProperty(value = "等待费")
    private BigDecimal awaitFee;

    @ApiModelProperty(value = "保险费")
    private Integer premium;

    @ApiModelProperty(value = "超出多少时间收取等待费")
    private Integer timeOutAwaitFee;

    @ApiModelProperty(value = "驶出当前城市是否收取时间费(0-不收 1-收)")
    private Integer isGather;

    @ApiModelProperty(value = "大于多少公里收取空驶费")
    private Integer greaterKilometreEmptyDriving;

    @ApiModelProperty(value = "收取空驶费比例")
    private BigDecimal emptyDrivingProportion;

    @ApiModelProperty(value = "大于多少公里收取远途费")
    private Integer distanceKm;

    @ApiModelProperty(value = "平台抽成比例")
    private BigDecimal drawRatio;

    @ApiModelProperty(value = "是否删除(0:否,1:是)")
    @TableLogic
    private Integer deleted;

    @ApiModelProperty(value = "创建人")
    private Long createUser;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "更新人")
    private Long updateUser;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "用户来源")
    private String tag;

    @ApiModelProperty(value = "是否默认价格(0-否 1-是)")
    private Integer isDefault;

    @ApiModelProperty(value = "是否禁用(0-否 1-是)")
    private Integer isDisable;


    public static final String RULES_ID = "rules_id";

    public static final String CITY_ID = "city_id";
    @ApiModelProperty(value = "渠道ID")
    private Integer channelId;
    @ApiModelProperty(value = "可否抢单")
    private Integer robable;

    public static final String VEHICLE_TYPE = "vehicle_type";

    public static final String COMPANY_ID = "company_id";

    public static final String USE_TIME_TYPE = "use_time_type";

    public static final String START_FEE = "start_fee";

    public static final String RESERVATION_START_FEE = "reservation_start_fee";

    public static final String START_MILEAGE = "start_mileage";

    public static final String MILEAGE_FEE = "mileage_fee";

    public static final String TIME_FEE = "time_fee";

    public static final String DISTANCE_FEE = "distance_fee";

    public static final String SERVICE_FEE = "service_fee";

    public static final String AWAIT_FEE = "await_fee";

    public static final String PREMIUM = "premium";

    public static final String TIME_OUT_AWAIT_FEE = "time_out_await_fee";

    public static final String IS_GATHER = "is_gather";

    public static final String GREATER_KILOMETRE_EMPTY_DRIVING = "greater_kilometre_empty_driving";

    public static final String EMPTY_DRIVING_PROPORTION = "empty_driving_proportion";

    public static final String DISTANCE_KM = "distance_km";

    public static final String DRAW_RATIO = "draw_ratio";

    public static final String DELETED = "deleted";

    public static final String CREATE_USER = "create_user";

    public static final String CREATE_TIME = "create_time";

    public static final String UPDATE_USER = "update_user";

    public static final String UPDATE_TIME = "update_time";

    public static final String TAG = "tag";

    public static final String IS_DEFAULT = "is_default";

    public static final String IS_DISABLE = "is_disable";

    public static final String CALL_TYPE = "call_type";
}
